class MotionDetection():
    # 动作判断
    # 因为使用opencv的方向，高度是从左上角算的。左上角是0,0,这与现实世界是不同的
    # 握拳
    def makeAFist(self, lmList):
        if (lmList[8][1] > lmList[6][1] and lmList[12][1] > lmList[10][1] and lmList[16][1] > lmList[14][1] and
                lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 开掌
    def openPalm(self, lmList):
        if (lmList[8][1] > lmList[6][1] and lmList[12][1] > lmList[10][1] and lmList[16][1] > lmList[14][1] and
                lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 大拇指
    def thumbsUp(self, lmList):
        if (lmList[4][1] > lmList[3][1]):
            return True
        return False

    # 食指
    def indexFinger(self, lmList):
        # 1指向右转
        if (lmList[8][1] < lmList[6][1] and lmList[12][1] > lmList[10][1] and lmList[16][1] > lmList[14][1] and
                lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 中指
    def middleFinger(self, lmList):
        if (lmList[8][1] > lmList[6][1] and lmList[12][1] < lmList[11][1] and lmList[16][1] > lmList[14][1] and
                lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 无名指
    def ringFinger(self, lmList):
        if (lmList[16][1] > lmList[15][1]):
            return True
        return False

    # 小拇指
    def littleFinger(self, lmList):
        if (lmList[20][1] < lmList[18][1]):
            return True
        return False

    # 中指和食指
    def middleFingerAndIndexFinger(self, lmList):
        if (lmList[8][1] < lmList[6][1] and lmList[12][1] < lmList[10][1] and lmList[16][1] > lmList[14][1] and
                lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 无名指和小拇指
    def pinkyAndRingFinger(self, lmList):
        if (lmList[8][1] > lmList[6][1] and lmList[12][1] > lmList[10][1] and lmList[16][1] < lmList[15][1] and
                lmList[20][1] < lmList[18][1]):
            return True
        return False

    # 食指放下
    def loseIndexFinger(self, lmList):
        if (lmList[8][1] > lmList[6][1]):
            return True
        return False

    # 小拇指放下
    def loseLittleFinger(self, lmList):
        if (lmList[20][1] > lmList[18][1]):
            return True
        return False

    # 中指和食指放下
    def loseMiddleFingerAndIndexFinger(self, lmList):
        if (lmList[8][1] > lmList[6][1] and lmList[12][1] > lmList[11][1]):
            return True
        return False

    # 无名指和小拇指放下
    def losePinkyAndRingFinger(self, lmList):
        if (lmList[16][1] > lmList[15][1] and lmList[20][1] > lmList[18][1]):
            return True
        return False
